package com.ck.dao;

import com.ck.model.common.Video;
import com.ck.model.company.dto.CpVideoListDTO;
import com.ck.model.company.vo.CpProgramVideoListVO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

public interface VideoMapper {
	/**
	 * 保存视频
	 *
	 * @param video Video
	 */
	long insertVideo(Video video);

	/**
	 * 修改视频
	 *
	 * @param video Video
	 */
	void updateVideoById(Video video);

	/**
	 * 视频列表
	 *
	 * @param companyCode 商家编码
	 * @param videoName   视频名称
	 * @return Page<CpVideoListDTO>
	 */
	Page<CpVideoListDTO> listVideo(@Param("companyCode") String companyCode, @Param("videoName") String videoName);

	/**
	 * 通过ID获取视频
	 *
	 * @param videoId 视频ID
	 * @return Video
	 */
	Video getVideoById(Long videoId);

	/**
	 * 通过视频ID删除视频
	 *
	 * @param videoId 视频ID
	 */
	void deleteVideoById(Long videoId);

	/**
	 * 查询节目选择视频时的列表
	 *
	 * @param companyCode 商家编码
	 * @param videoName   视频名称
	 * @return Page<CpProgramVideoListVO>
	 */
	Page<CpProgramVideoListVO> listProgramVideo(@Param("companyCode") String companyCode, @Param("videoName") String videoName);

	/**
	 * 通过视频名称获取视频
	 *
	 * @param companyCode 商家编码
	 * @param videoName   视频名称
	 * @return Video
	 */
	Video getVideoByName(@Param("companyCode") String companyCode, @Param("videoName") String videoName);

	/**
	 * 获取视频名称类似的条数
	 *
	 * @param companyCode 商家编码
	 * @param videoName   视频名称
	 * @return Long(视频条数)
	 */
	Long countVideoByName(@Param("companyCode") String companyCode, @Param("videoName") String videoName);
}